//
// export function IsArray(obj:any): boolean {
//   return obj && typeof obj == "object" && obj instanceof Array;
// }
//
// /**
//  * 对象深拷贝
//  * @param source 来源对象
//  * @param target 目标对象
//  * @returns
//  */
// export function DeepClone<T>(source:T, target?:Record<string, any> | T) {
//   if (IsArray(source)) {
//     target = target || [];
//   } else {
//     target = target || {};
//   }
//   for (const key in source) {
//     if (Object.prototype.hasOwnProperty.call(source, key)) {
//       if (typeof source[key] == "object" && typeof source[key] != null) {
//         target[key] = IsArray(source[key]) ? [] : {};
//         DeepClone(source[key], target[key]);
//       } else {
//         target[key] = source[key];
//       }
//     }
//   }
// }
//
// /**
//  * 对象浅拷贝
//  * @param source 来源对象
//  * @param target 目标对象
//  * @returns
//  */
// export function SimpleClone<T>(source:T, target?:Record<string, any> | T) {
//   if (IsArray(source)) {
//     target = target || [];
//   } else {
//     target = target || {};
//   }
//   for (const key in source) {
//     if (Object.prototype.hasOwnProperty.call(source, key)) {
//       target[key] = source[key];
//     }
//   }
// }
